package cn.seqdata.cxf.oauth2;

import java.util.List;

import org.apache.cxf.rs.security.oauth2.common.Client;
import org.apache.cxf.rs.security.oauth2.common.ServerAccessToken;
import org.apache.cxf.rs.security.oauth2.tokens.refresh.RefreshToken;

public interface OAuthStore {
	List<Client> selectClients(Object subject);

	Client selectClient(String clientId);

	void deleteClient(String clientId);

	List<ServerAccessToken> selectClientAccessTokens(String clientId);

	ServerAccessToken selectAccessToken(String tokenKey);

	void updateAccessToken(ServerAccessToken token);

	void deleteAccessToken(String tokenKey);

	List<RefreshToken> selectClientRefreshTokens(String clientId);

	RefreshToken selectRefreshToken(String tokenKey);

	void updateRefreshToken(RefreshToken token);

	void deleteRefreshToken(String tokenKey);
}
